var jweixin = require('@/components/jweixin-module/jsdk');
import cnodeModel from '@/api/api.js';
export default {  
    //判断是否在微信中  
    isWechat:function(){  
        var ua = window.navigator.userAgent.toLowerCase();  
        if(ua.match(/micromessenger/i) == 'micromessenger'){  
            return true;  
        }else{  
            return false;  
        }  
    },
    //初始化sdk配置
	scanQRJssdk:async function(callback,errorCallback){ 
		let url = ''
		//ios机型获取当前页面路径
		let ua = navigator.userAgent.toLowerCase();
		let isWeixin = ua.indexOf('micromessenger') !== -1;
		if (isWeixin) {
			let isiOS = /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent); //ios终端
		    if (isiOS && window.sessionStorage.getItem('firstEntryUrl')) {
		        url = window.sessionStorage.getItem('firstEntryUrl').split('#')[0];
		    }else{
				url = window.location.href
				url = url.split('#')
				url = url[0]
			}
		}
		// callback(jweixin);
		try{
			let resData = await cnodeModel.getWxshare(url);	// 根据接口返回appId，timestamp等数据
			if(resData.code==200){
				jweixin.config({
					beta: true,
					debug: false,  
					appId: resData.data.appId, // 必填，公众号的唯一标识
					timestamp: resData.data.timestamp, // 必填，生成签名的时间戳
					nonceStr: resData.data.nonceStr, // 必填，生成签名的随机串
					signature: resData.data.signature, // 必填，签名
					jsApiList: ['wx-open-launch-weapp','checkJsApi','scanQRCode','getLocation',"updateAppMessageShareData","updateTimelineShareData","chooseWXPay","chooseImage","uploadImage","previewImage","openLocation"],
					openTagList: ['wx-open-launch-weapp'], // 需要使用的开放标签列表
				});
				jweixin.ready(function () {
					if (callback) {
						callback(jweixin);
					}
				});
			}
		}catch(e){
			errorCallback();
		}

	},
	//初始化sdk配置
	scanQRJssdkUrl:async function(url,callback){ 
		let resData = await cnodeModel.getWxshare(url);	// 根据接口返回appId，timestamp等数据		
		if(resData.code==200){
			jweixin.config({
				beta: true,
				debug: false,  
				appId: resData.data.appId, // 必填，公众号的唯一标识
				timestamp: resData.data.timestamp, // 必填，生成签名的时间戳
				nonceStr: resData.data.nonceStr, // 必填，生成签名的随机串
				signature: resData.data.signature, // 必填，签名
				jsApiList: ['wx-open-launch-weapp','checkJsApi','scanQRCode','getLocation',"updateAppMessageShareData","updateTimelineShareData","chooseWXPay","chooseImage", "previewImage"],
				openTagList: ['wx-open-launch-weapp'] // 需要使用的开放标签列表
			});
			jweixin.ready(function () {
				jweixin.checkJsApi({
					jsApiList:['scanQRCode','getLocation',"updateAppMessageShareData","updateTimelineShareData"],
					success:function(res){
						// console.log('成功',res)
					}
				})
				if (callback) {
					callback(jweixin);
				}
			});
		}
	},
	// 支付接口
	 wexinPay:function(data, callback, errorCallback){
		let [appId, timestamp, nonceStr, signature, packages, sign, signType] = [data.appId, data.timeStamp, data.nonceStr, data.paySign, data.wxPackage, data.paySign,data.signType];
		console.log(data)
		jweixin.config({
			debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
			appId, // 必填，公众号的唯一标识
			timestamp, // 必填，生成签名的时间戳
			nonceStr, // 必填，生成签名的随机串
			signature, // 必填，签名，见附录1
			jsApiList: ['chooseWXPay'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
		});
		WeixinJSBridge.invoke(
			'getBrandWCPayRequest', {
				appId: appId, //公众号名称，由商户传入
				timeStamp: timestamp, //时间戳，自1970年以来的秒数
				nonceStr: nonceStr, //随机串
				package: packages,
				signType: signType, //微信签名方式：
				paySign: sign //微信签名
			},
			function(res) {
				if (res.err_msg == 'get_brand_wcpay_request:ok') {
					// 使用以上方式判断前端返回,微信团队郑重提示：
					//res.err_msg将在用户支付成功后返回ok，但并不保证它绝对可靠。
					//支付成功回调
					callback(res)
				} else if (res.err_msg == 'get_brand_wcpay_request:cancel') {
					//支付失败回调
					errorCallback(res)
				}
			}
		)
	},
	
	// 隐藏右上角胶囊
	wexinHide:async function(){
		let url = window.location.href
		let resData = await cnodeModel.getWxshare(url);	// 根据接口返回appId，timestamp等数据
		jweixin.config({
			debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
			appId: resData.data.appId, // 必填，公众号的唯一标识
			timestamp: resData.data.timestamp, // 必填，生成签名的时间戳
			nonceStr: resData.data.nonceStr, // 必填，生成签名的随机串
			signature: resData.data.signature, // 必填，签名
			jsApiList: ["hideOptionMenu","scanQRCode"] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
		});
		
		jweixin.ready(function(){
		  // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
			jweixin.hideOptionMenu();
	 
		});
		jweixin.error(function(res){
			console.log("信息验证失败",res);
		  // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
		});
	 
   }
}
